import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

public class Jugador extends Actor
{
   private int color_pisado;
   private int contadorCombo;
   private int ant_pisado;
   
   public Jugador()
   {
       contadorCombo=0;
       ant_pisado=0;
   }
   
    public void act() 
    {  
        
        if(Greenfoot.isKeyDown("left"))
        {  
            this.move(-1);
        }
        
        
        if(Greenfoot.isKeyDown("right"))
          this.move(1); 
          
        if(this.checa_abajo())//Si es true, quiere decir que abajo hay cubo
        {
            this.destruye_cubo();
            this.asciende();
        }
        else
        { if(this.getY()==11)
          {
              this.asciende();
          }
           else
           {this.desciende();}
    
        }
    }
    
    public void destruye_cubo()
    {
     Actor cubo;
     Cubo aux=new Cubo();
     cubo=super.getOneIntersectingObject(Cubo.class);
     if(cubo!=null)
     {
      aux=(Cubo)cubo;
      World mundo;
      mundo=super.getWorld();
      color_pisado=aux.checaColor();// Aqui se llama al metodo checa color enviandole como parametro el 1 (valor que representa la imagen amarilla)
      
      
         if(ant_pisado==color_pisado)
          {
            contadorCombo=contadorCombo+1;
            System.out.println(contadorCombo);
            if(contadorCombo==3)
            {
               System.out.println("Se destruyeron 3 del mismo color en forma consecutiva");
               this.destruyeFila(cubo.getY());
            }
          }
         else
         {
            contadorCombo=1;
            System.out.println(contadorCombo);
            ant_pisado=color_pisado;
         }
      mundo.removeObject(cubo);
     }
    }
    
   public void asciende()
   { 
       for(int m=1;m<5;m++)
       { super.setLocation(super.getX(),super.getY()-1);
        }
   }
    
   public void desciende()
   { 
        this.setLocation(this.getX(),this.getY()+1);
   }
    
   public boolean checa_abajo()
   {
     if(this.getOneIntersectingObject(Cubo.class)==null)
      return false;
     else 
      return true;
   }  
   
   public void destruyeFila(int posY)
   {
       Actor cubo;
       Escenario mundo;
       mundo=(Escenario)getWorld();
       for(int i=0;i<9;i++)
       {
           java.util.List<Actor> listaCubos=mundo.getObjectsAt(i, posY, Actor.class);
           cubo=(Cubo)listaCubos.get(0);
           System.out.println("Entro al for");
           mundo.removeObject(cubo);
        } 
    }
}
